package com.codegen.service.impl;

import com.codegen.dao.TableDao;
import com.codegen.entity.Table;
import com.codegen.entity.TableVo;
import com.codegen.service.TableService;
import com.codegen.utils.PageUtils;
import com.codegen.utils.Query;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TableServiceImpl implements TableService {

    @Autowired
    private TableDao tableDao;

    @Override
    public int addTable(TableVo table) {

        return tableDao.addTable(table);
    }

    @Override
    public int editTable(TableVo table) {

        return tableDao.editTable(table);
    }

    @Override
    public PageUtils queryList(Query query) {
        Page<?> page = PageHelper.startPage(query.getPage(), query.getLimit());
        List<TableVo> list = tableDao.queryList(query);

        return new PageUtils(list, (int) page.getTotal(), query.getLimit(), query.getPage());
    }

    @Override
    public TableVo selectOneByTableId(Integer tableId) {

        return tableDao.selectOneByTableId(tableId);
    }

    @Override
    public List<TableVo> queryTablesByProjectId(Integer projectId) {
        return tableDao.queryTablesByProjectId(projectId);
    }

    @Override
    public TableVo selectByTableName(Integer projectId, String tableName) {
        return tableDao.selectByTableName(projectId,tableName);
    }
}
